package tp.tecnicasdisenio.job;

import java.util.Date;
import java.util.Iterator;

import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import tp.tecnicasdisenio.dao.impl.jdbc.ConsultaDao;
import tp.tecnicasdisenio.dao.impl.jdbc.TicketDao;
import tp.tecnicasdisenio.model.entity.Consulta;
import tp.tecnicasdisenio.model.entity.ConsultaEstado;
import tp.tecnicasdisenio.model.entity.Ticket;

public class CerrarConsultasJob implements Job {	
	@Override
	public void execute(JobExecutionContext arg0) throws JobExecutionException {
	    System.out.println("[CRON] " + new Date() + ": Entrando CerrarConsultasJob."); // Change for a Logger.
	    
	    Iterator<Consulta> itConsultas = ConsultaDao.getInstance().obtenerTodos().iterator();
		while (itConsultas.hasNext()){
			Consulta consulta = itConsultas.next();
			if (consulta.getEstado() != ConsultaEstado.CERRADO){
				String tema = consulta.getTema();
				Ticket ticket = TicketDao.getInstance().obtenerUltimoTicketDelTema(tema);
				Date marca = new Date(System.currentTimeMillis() - 1000*60*60*48);
				//no se si esto es asi o con before, fucking dislexia!
				if (marca.after(ticket.getFecha())){
					consulta.setEstado(ConsultaEstado.CERRADO);
					ConsultaDao.getInstance().actualizar(consulta);
				}
			}
			
		}
		
		System.out.println("[CRON] " + new Date() + ": Cerrando CerrarConsultasJob.");
	}
}